package anim.animacije;

import java.awt.Point;

import anim.Animator;
import anim.objekti.Objekat;
/**
 * @author Aleksandar Stancic
 */

public class PremjestiCosV implements Animacija {
	private Point npoz = null, ppoz = null;
	private Objekat obj = null;
	private boolean prvi = true;
	
	private long brKoraka = 0;
	private long tKorak = 0;
	private float deltaV = 0.0f;
	
	public PremjestiCosV(Objekat o, Point p, long vrijeme)
	{
		obj = o;
		npoz = p;
		
		brKoraka = vrijeme / Animator.POCETNI_INTERVAL;
	}
	
	@Override
	public boolean otkucaj() {
		if(prvi)
		{
			ppoz = obj.getPozicija();
			prvi = false;
			deltaV = npoz.x - ppoz.x;
			return true;
		}
		else
		{
			if(tKorak >= brKoraka)
			{
				obj.setPozicija(npoz);
				return false;
			}
			else
			{
				tKorak++;
				
				float x = (float)tKorak / (float)brKoraka;
				float a = x * (float)Math.PI;
				float deltaX = deltaV * ((float)-Math.cos(a) + 1.0f) * 0.5f;
				float deltaY = (npoz.y - ppoz.y) * x;
				obj.setPozicija(new Point(ppoz.x + (int)deltaX, ppoz.y + (int)deltaY));
				return true;
			}
		}
	}

}
